package com.unknowpupil.web.base;


import com.github.pagehelper.PageInfo;

/**
 * @Classname: BaseCrudService
 * @Author: <a> w10g </a>
 * @CreateDate: Create in 2019/9/29 10:13
 * @Description: 通用的业务逻辑层
 * @Version: 1.0
 */
public interface BaseCrudService<T extends AbstractBaseDomain> {
     /**
      * 功能描述: <br>
      * 〈查询属性值是否唯一〉
      *             true : 唯一 false ： 不唯一
      * @param property
      * @param value
      * @return:
      * @since: 1.0.0
      * @Author: sunRain
      * @Date: 2019/10/8 14:24
      */
     default boolean unique(String property, String value){
        return false;
    }
    /**
     * 功能描述: <br>
     * 〈保存或者保存〉
     *
     * @param domain
     * @return:
     * @since: 1.0.0
     * @Author: sunRain
     * @Date: 2019/10/8 14:24
     */
    T save(T domain);
    /**
     * 功能描述: <br>
     * 〈分页查询〉
     *
     * @param doMain
     * @param pageNum
     * @param pageSize
     * @return:
     * @since: 1.0.0
     * @Author: sunRain
     * @Date: 2019/10/8 14:23
     */
    PageInfo<T> page(T doMain, int pageNum, int pageSize);


}
